<?php defined('BASEPATH') OR exit('No direct script access allowed');
require_once APPPATH.'eloquent_orm/core/Eloquent_arrayaccess.php';

/**
 * Eloquent接口
 * @author 张皓旻
 *
 */
abstract class Eloquent_interface extends Eloquent_arrayaccess
{
    /**
     * 封装CI的db对象
     * @var object
     */
    protected $_db = NULL;
    
    /**
     * 单条数据
     * @var array
     */
    protected $_attributes = array();
    
    /**
     * 表名, 外部接口
     * @var string
     */
    protected $table = '';
    
    /**
     * 存储数据时自动加上时间<p>
     * 默认为update_time, create_time
     * @var boolean
     */
    protected $timestamps = FALSE;
    
    /**
     * 主键字段
     * @var string
     */
    protected $primary_key = 'id';
    
    /**
     * 设置一个单元的数据
     * @param string $key
     * @param string $value
     */
    abstract public function __set($key, $value);
    
    /**
     * 获取一个单元的值
     * @param string $key
     */
    abstract public function __get($key);
    
    /**
     * 保存单条数据
     */
    abstract public function save();
    
    /**
     * 内部方法, 获取单元的值
     * @param string $key
     */
    abstract protected function _get_attribute($key);
}